//提供最小化的和自定义的grid配置
function initGrid(params) {
    var url = dealDefault(params.url, obj[myKey] + '/getGridData.do');
    var pagination = dealDefault(params.pagination, true);
    var rownumbers = dealDefault(params.rownumbers, true);
    var queryParams = dealDefault(params.queryParams, {});
    var columns = dealDefault(params.columns, []);
    var toolbar = dealDefault(params.toolbar, []);
    $('#' + obj[myKey] + 'dataGrid').datagrid({
        url: applicationContextPath + url,//一个用以从远程站点请求数据的超链接地址。
        pagination: pagination, //设置true将在数据表格底部显示分页工具栏。false
        rownumbers: rownumbers,  //设置为true将显示行数。   false
        pageSize: 10, //当设置分页属性时，初始化每页记录数。10
        height: 400,
        singleSelect: false,//设置为true将只允许选择一行。false
        pageNumber: 1,//当设置分页属性时，初始化分页码。1
        pageList: [10, 15, 20, 30, 40, 50],//  当设置分页属性时，初始化每页记录数列表。[10,20,30,40,50]
        fitColumns: true,//设置为true将自动使列适应表格宽度以防止出现水平滚动。 false
        striped: false,//设置为true将交替显示行背景。false
        method: 'post',//请求远程数据的方法类型。post
        nowrap: true,  //设置为true，当数据长度超出列宽时将会自动截取。true
        idField: 'id', //表明该列是一个唯一列
        loadMsg: "正在处理你的请求，请稍等。。。",//当从远程站点载入数据时，显示的一条快捷信息 Processing, please wait …
        sortName: 'id',  //  当数据表格初始化时以哪一列来排序 null
        sortOrder: 'asc',// 定义排序顺序，可以是'asc'或者'desc'（正序或者倒序）。asc
        remoteSort: 'true',//定义是否通过远程服务器对数据排序。true
        showFooter: true,// 定义是否显示行底（如果是做统计表格，这里可以显示总计等）false
        /*   rowStyler:function(index,row){
         //返回样式，如：'background:red'，function有2个参数：index：行索引，从0开始.row：对应于该行记录的对象。
         },
         loadFilter:function(data){
         //返回用以显示的已过滤数据，function有一个参数'data'表示原始数据，你可以将原始数据改变为规范的数据格式，该函数必须返回包含 'total'和'rows'属性的标准数据对象。
         },*/
        queryParams: queryParams,
        columns: columns,
        toolbar: toolbar
    });
    initPagination();
}

/**
 * 初始化分页信息
 */
function initPagination() {
    var pager = $('#' + obj[myKey] + 'dataGrid').datagrid('getPager');	// get the pager of datagrid
    pager.pagination();
}
/**
 * 跳转到编辑界面的公共方法
 */
function doEdit(callEdit) {
    var row = $('#' + obj[myKey] + 'dataGrid').datagrid('getSelected');
    var rows = $('#' + obj[myKey] + 'dataGrid').datagrid('getSelections');
    var num = rows.length;
    if (num < 1) {
        $.messager.alert('系统警告', '请选择一条记录！', 'info');
    } else if (num == 1) {
        callEdit(row.id);
    } else if (num > 1) {
        $.messager.alert('系统警告', '请选择一条记录！', 'info');
    }
}
/**
 * 删除的公共方法
 */
function doDelete() {
    var ids = getSelectIds();
    if (ids == null) {
        return;
    }
    $.messager.confirm('确认', '确定删除所选记录?', function (r) {
        if (r) {
            var params = {};
            params.url = dealDefault(params.url, obj[myKey] + '/deleteMore.do');
            params.data = dealDefault(params.data, {ids: ids});
            function dealAjaxBack(data) {
                var json = $.parseJSON(data);
                if (json.success) {
                    $.messager.alert('系统提示', json.message, 'info');
                    refreshGrid();
                    clearSelect();
                } else {
                    $.messager.alert('系统警告', json.message, 'info');
                }
            };
            params.dealAjaxBack = dealAjaxBack;
            ajax(params);
        }
    })
}

/**
 * 隐藏高级查询
 */
function hideAdvanceSearchPanel() {
    $('#' + obj[myKey] + 'advanceSearchPanel').hide(100);
    $('#' + obj[myKey] + 'simpleSearchPanel').show(100);
}

/**
 * advance search
 * @param url
 * @param formId
 */
function searchGrid(url, formId) {
    var params = {};
    formId = dealDefault(formId, obj[myKey] + 'advanceSearchForm');
    params.url = dealDefault(url, obj[myKey] + '/getGridData.do');//为高级查询 待优化
    var queryParams = getFormJsonData(formId);
    $('#' + obj[myKey] + 'dataGrid').datagrid('load', queryParams);
}

/**
 *  simple search
 * @param url
 * @param params
 */
function searchSimpleGrid(params, url) {
    url = dealDefault(url, obj[myKey] + '/getGridData.do');//为模糊查询
    var queryParams = params;
    $('#' + obj[myKey] + 'dataGrid').datagrid('load', queryParams);
}

function getFormJsonData(formId) {
    var params = {};
    $('#' + formId + ' input').each(function () {
        if ($(this).val() != '') {
            params[$(this).attr('name')] = $(this).val();
        }
    });
    params.searchType = 'advance_search';
    return params;
}






